# 2.
# 根据面向对象原理，完成以下操作
# (1)
# 父类创建
# ①    创建类Movie
class Movie(object):

    # ②    创建构造函数，添加实例属性name, role
    def __init__(self, name, role):
        self.name = name
        self.role = role

    # ③    创建静态方法intro，输出内容‘这是一部电影’
    @staticmethod
    def intro():
        print('这是一部电影')

    # ④    创建方法show，输出‘电影名称：name，主角是：role，（name和role使用构造函数中的属性）
    def show(self):
        print(f'电影名称：{self.name}，主角是：{self.role}')


# (2)
# 子类创建
# ①    创建类Action，继承Movie
class Action(Movie):

    # ②    构造函数中添加一个新属性age
    def __init__(self, name, role, age):
        super().__init__(name, role)
        self.age = age

    # ③    重写show方法，输出‘电影名称：name，主角name今年age岁’（name，role和age使用构造函数中的属性）
    def show(self):
        print(f'电影名称：{self.name}，主角是：{self.role}今年{self.age}岁')

    # ④    创建cal方法，判断新属性age大小，如果age大于30，返回‘成年人’，如果age小于等于30，返回‘童星’
    def cal(self):
        if self.age > 30:
            return '成年人'
        else:
            return '童星'


# (3)
# 对象应用
# ①    创建类Action对象，例如：醉拳，成龙，60
zq = Action('醉拳', '成龙', 60)

# ②    调用Action对象静态方法intro
zq.intro()

# ③    调用Action对象show方法
zq.show()

# ④    调用Action对象cal方法
print(zq.cal())
